package com.johann.leetcode;
/*
给你一个 32 位的有符号整数 x ，返回将 x 中的数字部分反转后的结果。

        如果反转后整数超过 32 位的有符号整数的范围 [−231,  231 − 1] ，就返回 0。

        假设环境不允许存储 64 位整数（有符号或无符号）。
        示例 1：

        输入：x = 123
        输出：321
        示例 2：

        输入：x = -123
        输出：-321
        示例 3：

        输入：x = 120
        输出：21
        示例 4：

        输入：x = 0
        输出：0
*/
public class T7_IntegerReverse {
    static class Solution{
        public int reverse(int x) {
            if (x==0)  return 0;
            if(x==Integer.MIN_VALUE){
                return 0;
            }
            int absX = Math.abs(x);
            StringBuilder sb =new StringBuilder(String.valueOf((Integer)absX));
            sb.reverse();
            String str = sb.toString();
            try {
                int reversedInt = Integer.parseInt(str);
                return x<0? -reversedInt:reversedInt;
            }
            // 如果解析失败，值溢出 ，直接返回0
            catch (NumberFormatException e) {
                return 0;
            }
        }
    }

    public static void main(String[] args) {

    }

}
